package Management;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;

import paquetes.negocioVO.ClienteEventualVO;
import paquetes.negocioVO.ClienteVO;
import paquetes.negocioVO.FacturaVO;
import paquetes.negocioVO.PedidoVO;
import bean.dao.ClienteDAO;
import bean.dao.FacturaDAO;
import Entities.*;


public class ManagementFactura {
	private static ManagementFactura instancia;

	public static ManagementFactura getInstancia() {
		if (instancia == null)
			instancia = new ManagementFactura();
		return instancia;
	}

	
	public void guardarFactura(Float importe,Date fechaEmision,Date fechapagada) {

		Calendar fechaActual = Calendar.getInstance();
		Date fecha = fechaActual.getTime();

		FacturaDAO miDAO = new FacturaDAO();

		Factura factura = new Factura();
		factura.setImporte(importe);
		factura.setFechaEmision(fecha);
		factura.setFechaPagada(fechapagada);
		miDAO.guardarFactura(factura);
	}


	public List<FacturaVO> getFacturas() {
		try {
			FacturaDAO factura = new FacturaDAO();
			List<Factura> facturas = factura.getFacturas();
			List<FacturaVO> facturasVO = new ArrayList<FacturaVO>();
			for (int i=0;i<facturas.size();i++)
			{
				FacturaVO c = this.FacturaEntitieAVO(facturas.get(i));
				facturasVO.add(c);
			}
			return facturasVO;
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}


	private FacturaVO FacturaEntitieAVO(Factura factura) {
		
		FacturaVO facturaVO = new FacturaVO();
		facturaVO.setImporte(factura.getImporte());
		facturaVO.setFechaEmision(factura.getFechaEmision());
		facturaVO.setFechaPagada(factura.getFechaPagada());
		return facturaVO;	

	}


	public void generarFactura(PedidoVO p) {
		
		Calendar fechaActual = Calendar.getInstance();
		Date fecha = fechaActual.getTime();
		
		FacturaDAO miDAO = new FacturaDAO();
		Factura factura = new Factura();
		factura.setImporte(p.getImporte());
		factura.setFechaPagada(fecha);
		factura.setFechaEmision(fecha);
		
		miDAO.guardarFactura(factura);
		
	}
}
